home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / hamrad3.arc / MICRO.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  3.7 KB  |  112 lines

  1. 100  CLS :REM "MICRO"
  2. 110  PRINT TAB(32);"**** MICRO ****"
  3. 120  PRINT :PRINT "PROGRAM TO COMPUTE INDUCTIVE AND CAPACITIVE ELEMENTS USING MICROSTRIP TECHNIQUES" :PRINT
  4. 130  PRINT :BEEP :INPUT "ENTER OPERATING FREQUENCY (Mhz)";FO
  5. 140  PRINT :BEEP :INPUT "ENTER BOARD THICKNESS    (MILS)";T
  6. 150  PRINT :BEEP :INPUT "ENTER RELATIVE DIELECTRIC CONSTANT (Er)";E
  7. 160  PRINT :BEEP :INPUT "ENTER Zo OF THE LINE TO BE USED  (ohms)";Z
  8. 170   PI =4*ATN(1) :GOSUB 1050
  9. 180  CLS :PRINT "LINE WIDTH=";W;"mils"
  10. 190  PRINT :PRINT :BEEP :PRINT "ENTER ELEMENT NEEDED L or C use Z to CHANGE Zo "
  11. 200  A$=INKEY$ :IF A$="" THEN 200
  12. 210  EP=(E+1)/2+(E-1)/2*(1+10/(W/H))^-0.5
  13. 220  VP=EP^-0.5 :LG=300*39.37*VP/FO
  14. 230  IF A$="L" THEN 260
  15. 240  IF A$="C" THEN 660
  16. 250  IF A$="Z" THEN 160 ELSE 200
  17. 260  PRINT :BEEP :INPUT "ENTER INDUCTANCE REQUIRED (nh)";A
  18. 270  XL=2*PI*FO*10^6*A*10^-9 :D=57.296*ATN(XL/Z)
  19. 280  IF D>50 THEN 610
  20. 290  IND=D*LG/360
  21. 300  IND=INT(IND*1000)/1000 :IF IND<0.01 THEN 610
  22. 310  XL=INT(XL*100)/100
  23. 320  CLS :PRINT " FO=";FO;"Mhz"
  24. 330  PRINT :PRINT "THK=";T;"mils"
  25. 340  PRINT :PRINT "Er =";E
  26. 350  PRINT :PRINT "Zo =";Z;"ohms"
  27. 360  PRINT :PRINT "WTH=";W;"mils"
  28. 370  PRINT :PRINT "          L=";A;"nh"
  29. 380  PRINT "-------               -------"
  30. 390  PRINT "      |               |"
  31. 400  PRINT "      -----------------"
  32. 410  PRINT "     LENGTH=";IND;"inches"
  33. 420  PRINT "      -----------------"
  34. 430  PRINT "      |               |"
  35. 440  PRINT "-------               -------"
  36. 450  PRINT "         XL=";XL;"ohms"
  37. 460  PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED?  (Y/N)"
  38. 470  P$=INKEY$ :IF P$="" THEN 470
  39. 480  IF P$="Y" THEN 500
  40. 490  IF P$="N" THEN 620 ELSE 470
  41. 500  LPRINT "Fo=";FO;"Mhz";"; THK.=";T;"mils";"; Er=";E;"; WIDTH=";W;"mils";"; Zo=";Z;"ohms" :LPRINT :LPRINT
  42. 510  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
  43. 520  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
  44. 530  LPRINT TAB(30);CHR$245;TAB(35);"L=";A;"nh";TAB(50);CHR$(245)
  45. 540  FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
  46. 550  LPRINT TAB(31);"LENGTH=";IND;"inches"
  47. 560  FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
  48. 570  LPRINT TAB(30);CHR$(245);TAB(34);"XL=";XL;"ohms";TAB(50);CHR$(245)
  49. 580  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
  50. 590  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
  51. 600  GOTO 620
  52. 610  PRINT :PRINT "ELEMENT IS INADVISABLE FOR THIS MATERIAL OR Zo" :GOTO 190
  53. 620  PRINT :PRINT :BEEP :PRINT "CONTINUE?  (Y/N)"
  54. 630  B$=INKEY$ :IF B$="" THEN 630
  55. 640  IF B$="Y" THEN 190
  56. 650  IF B$="N" THEN END ELSE 630
  57. 660  PRINT :BEEP :INPUT "ENTER CAPACITANCE REQUIRED (pf)";B
  58. 670  XC=1/(2*PI*FO*10^6*B*10^-12)
  59. 680  D=90-(ATN(XC/Z)*57.296) :IF D>50 THEN 1000
  60. 690  C=D*LG/360 :C=INT(C*1000)/1000 :IF C<0.01 THEN 1000
  61. 700  XC=INT(XC*100)/100
  62. 710  CLS :PRINT " FO=";FO;"Mhz"
  63. 720  PRINT :PRINT "THK=";T;"mils"
  64. 730  PRINT :PRINT "Er =";E
  65. 740  PRINT :PRINT "Zo =";Z"ohms"
  66. 750  PRINT :PRINT "WTH=";W;"mils"
  67. 760  PRINT :PRINT "          C=";B;"pf"
  68. 770  PRINT "        --------------"
  69. 780  PRINT "       |              |"
  70. 790  PRINT "--------              --------"
  71. 800  PRINT "     LENGTH=";C;"inches"
  72. 810  PRINT "--------              --------"
  73. 820  PRINT "       |              |"
  74. 830  PRINT "        --------------"
  75. 840  PRINT "         XC=";XC;"ohms"
  76. 850  PRINT :PRINT :BEEP :PRINT "HARD COPY REQUIRED? (Y/N)"
  77. 860  P$=INKEY$ :IF P$="" THEN 860
  78. 870  IF P$="Y" THEN 890
  79. 880  IF P$="N" THEN 1010 ELSE 860
  80. 890  LPRINT "Fo=";FO;"Mhz";"; THK.=";T;"mils";"; Er=";E;"; WIDTH=";W;"mils";"; Zo=";Z;"ohms" :LPRINT :LPRINT
  81. 900  FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
  82. 910  LPRINT TAB(30);CHR$(245);TAB(35);"C=";B;"pf";TAB(50);CHR$(245)
  83. 920  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
  84. 930  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
  85. 940  LPRINT TAB(31);"LENGTH=";C;"inches"
  86. 950  FOR U=10 TO 30 :LPRINT TAB(U);CHR$(241); :NEXT U
  87. 960  FOR U=50 TO 70 :LPRINT TAB(U);CHR$(241); :NEXT U
  88. 970  LPRINT TAB(30);CHR$(245);TAB(34);"XC=";XC;"ohms";TAB(50);CHR$(245)
  89. 980  FOR U=30 TO 50 :LPRINT TAB(U);CHR$(241); :NEXT U
  90. 990  GOTO 1010
  91. 1000  PRINT :PRINT "ELEMENT IS INADVISABLE FOR THIS MATERIAL OR Zo" :GOTO 190
  92. 1010  PRINT :PRINT :BEEP :PRINT "CONTINUE?  (Y/N)"
  93. 1020  C$=INKEY$ :IF C$="" THEN 1020
  94. 1030  IF C$="Y" THEN 190
  95. 1040  IF C$="N" THEN END ELSE 1020
  96. 1050  H=T-2.8 :W=592/(Z*SQR(E))
  97. 1060  W=0.64*(W-1-LOG(2*W-1)+0.5*(1-1/E)*(0.293+LOG(W-1)-0.517/E))
  98. 1070  WA=H*W :W=INT(WA+0.5)
  99. 1080  S=W+2 :Y=-1
  100. 1090  FOR W=S TO 10 STEP Y
  101. 1100  WE=W+(1.4/PI)*LOG(2*H/1.4+1)
  102. 1110  X=377*H/(E^0.5*WE*(1+(1.735*E^-0.0724)*(WE/H)^-0.836))
  103. 1120  IF W>1500 THEN 1190
  104. 1130  IF X<Z THEN 1160
  105. 1140  IF X=Z THEN 1200
  106. 1150  IF X>Z THEN 1170
  107. 1160  NEXT W
  108. 1170  IF W<10 THEN 1190
  109. 1180  GOTO 1200
  110. 1190  PRINT :PRINT "Zo ENTERED IS NOT VALID FOR THIS MATERIAL" :PRINT :GOTO 160
  111. 1200  RETURN
  112.